package model;
import java.util.List;
import modelInterfaces.IEvent;
import modelInterfaces.IEventType;
import modelInterfaces.IValue;

/**
 *	Represents the interaction between a source ({@link Subject}) on a content (@link Object})
 *  @see Subject
 *  @see Object
 *  @see IEvent
 */
public class Event implements IEvent {
	
	/** Numeric identifier*/
	private int id;
	
	/**Classification of Event*/
    private IEventType eventType;
    
    /** Source performs event*/
    private String subject;
    
    /** Content with which subject interacted*/
    private String object;
    
    /** Values associated with the event*/
    private List<IValue> values;
    
    /** The time at which the event occurred*/
    private String time;

    public int getId()
    {
        return this.id;
    }

    public IEventType getEventType()
    {
        return this.eventType;
    }
    
    public String getSubject()
    {
        return this.subject;
    }

    public String getObject()
    {
        return this.object;
    }

    public List<IValue> getValues()
    {
        return this.values;
    }
    
    public String getTime()
    {
        return this.time;
    }

    public void setId(int id)
    {
        this.id = id;
    }

    public void setEventType(IEventType eventType)
    {
        this.eventType = eventType;
    }
    
    public void setSubject(String subject)
    {
        this.subject = subject;
    }

    public void setObject(String object)
    {
        this.object = object;
    }

    public void setValues(List<IValue> values) {
        this.values = values;
    }
    
    public void setTime(String time)
    {
        this.time = time;
    }

}
